package org.soenea.doitall.domain.model.invite;


import org.dsrg.soenea.domain.DomainObjectCreationException;
import org.dsrg.soenea.domain.MapperException;
import org.dsrg.soenea.domain.proxy.DomainObjectProxy;
import org.soenea.doitall.domain.model.group.IGroup;
import org.soenea.doitall.domain.model.invite.mapper.InviteInputMapper;
import org.soenea.doitall.domain.model.user.IUser;


public class InviteProxy extends DomainObjectProxy<Long, Invite> implements
		IInvite {

	public InviteProxy(Long id) {
		super(id);
	}

	@Override
	public IGroup getGroupID() {
		return getInnerObject().getGroupID();
	}

	@Override
	public void setGroupID(IGroup groupID) {
		getInnerObject().setGroupID(groupID);
	}

	@Override
	public int getStatus() {
		return getInnerObject().getStatus();
	}

	@Override
	public void setStatus(int status) {
		getInnerObject().setStatus(status);
	}

	@Override
	protected Invite getFromMapper(Long id) throws MapperException,
			DomainObjectCreationException {
		try {
	    return InviteInputMapper.findInviteByInviteID(id);
	   } catch (Exception e) {
	    throw new DomainObjectCreationException(e.getMessage(), e);
	   }
	}

	@Override
	public org.soenea.doitall.domain.model.user.IUser getInviter() {
		return getInnerObject().getInviter();
	}

	@Override
	public void setInviter(IUser inviter) {
		getInnerObject().setInviter(inviter);
	}

	@Override
	public IUser getInvited() {
		return getInnerObject().getInvited();
	}

	@Override
	public void setInvited(IUser invited) {
		getInnerObject().setInvited(invited);
	}

}
